package com.hxtec.polaris.mapper;

import com.hxtec.polaris.entity.ShopHistory;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ShopHistoryMapper {
    /**
     * 删除一条浏览记录
     * @param id
     * @return
     */
    int delete(Integer id);

    /**
     * 删除所有浏览记录
     * @param username
     * @return
     */
    int deleteAll(String username);

    /**
     * 添加浏览记录
     * @param shopHistory
     * @return
     */
    int insert(ShopHistory shopHistory);

    /**
     * 获取所有浏览历史记录，默认查询最新记录前十条
     * @param userId
     * @return
     */
    List<Map<String,Object>> getAllHistory(@Param("uid") int userId);

    /**
     * 根据用户名获取数据库中的历史记录条数
     */
    int getCountByUsername(@Param("username") String username);

    /**
     * 如果库中当前用户的历史记录超过指定的条数，删除该用户的30条之前的历史记录
     * @param max
     * @param username
     * @return
     */
    int deleteOverRowsByUsername(@Param("max")int max,@Param("username") String username);

    /**
     *  判断数据库中当前用户是否已经有过该sku的浏览记录
     * @param sku
     * @param username
     * @return
     */
    int getCountBySkuAndUserName(@Param("sku")String sku,@Param("username") String username);

    /**
     * 如果已经有该sku的记录，则不再执行insert，执行uppdate，更新时间和图片
     * @param shopHistory
     * @return
     */
    int updateRows(ShopHistory shopHistory);
}